package com.superpai.request.deal;

import java.util.TreeMap;
import com.superpai.common.Constants;
import com.superpai.request.PaiPaiRequest;
import com.superpai.response.deal.SellerSearchDealListResponse;
import com.superpai.utils.ParameterUtils;

/**
 * @author Devin.Hu
 * @date 2011-9-24
 * @version V1.0
 * @description
 */
public class SellerSearchDealListRequest implements PaiPaiRequest<SellerSearchDealListResponse> {

	/** 卖家QQ号 **/
	private int sellerUin;
	/** number 默认 0 查询的是否为历史订单 **/
	private String historyDeal;
	/**
	 * 空字符串（默认） 时间类型 空字符串（默认）:表示不使用时间筛选项 CREATE:表示timeBegin和timeEnd是下单时间
	 * UPDATE:表示timeBegin和timeEnd是订单最后更新时间
	 * 如果timeType的类型为CREATE、UPDATE时，timeBegin和timeEnd字段必须赋值
	 * 指定timeType时可同时用对应时间字段作为排序字段，排序方法见参数“orderDesc”说明；不指定timeType时没有排序。
	 **/
	private String timeType;
	/** time 格式: yyyy-MM-dd HH:mm:ss 起始时间 前提是timeType必须赋值，如果字段timeType的类型为CREATE、UPDATE时，该字段必须赋值 **/
	private String timeBegin;
	/** time 格式: yyyy-MM-dd HH:mm:ss 结束时间 前提是timeType必须赋值， * 如果字段timeType的类型为CREATE、UPDATE时，该字段必须赋值 **/
	private String timeEnd;
	/** string 默认为空字符串 订单状态:dealState **/
	private String dealState;
	/** string 商品编码 **/
	private String itemCode;
	/** string 商品名称关键字 目标订单的商品标题，表示查找和该商品标题相关的订单，  * 例如如果设置为“森林”，那么商品标题中带有“森林”词的订单列表就会被查找出来**/
	private String itemNameKey;
	/** number 0（默认） 是否列出商品 0（默认）：不列出订单相关商品 非0：列出订单相关商品（速度比较慢） **/
	private String listItem;
	/** string 订单编码 可查询单个订单的信息 **/
	private String dealCode;
	/** number 非0（默认） 是否逆序排列 非0（默认）：逆序排列 0：顺序排列 **/
	private int orderDesc;
	/** number 1（默认） 页数索引，从1开始 **/
	private int pageIndex;
	/** number 默认为10 页大小 每页返回的订单记录数，不要超过20。默认为10 **/
	private int pageSize;
	/**
	 * number 订单的评价状态 100=需要买家评价的 101=需要卖家评价的 102=买家已评价的 103=卖家已评价的
	 **/
	private String dealRateState;

	
	public int getSellerUin() {
		return sellerUin;
	}

	public void setSellerUin(int sellerUin) {
		this.sellerUin = sellerUin;
	}

	public String getHistoryDeal() {
		return historyDeal;
	}

	public void setHistoryDeal(String historyDeal) {
		this.historyDeal = historyDeal;
	}

	public String getTimeType() {
		return timeType;
	}

	public void setTimeType(String timeType) {
		this.timeType = timeType;
	}

	public String getTimeBegin() {
		return timeBegin;
	}

	public void setTimeBegin(String timeBegin) {
		this.timeBegin = timeBegin;
	}

	public String getTimeEnd() {
		return timeEnd;
	}

	public void setTimeEnd(String timeEnd) {
		this.timeEnd = timeEnd;
	}

	public String getDealState() {
		return dealState;
	}

	public void setDealState(String dealState) {
		this.dealState = dealState;
	}

	public String getItemCode() {
		return itemCode;
	}

	public void setItemCode(String itemCode) {
		this.itemCode = itemCode;
	}

	public String getItemNameKey() {
		return itemNameKey;
	}

	public void setItemNameKey(String itemNameKey) {
		this.itemNameKey = itemNameKey;
	}

	public String getListItem() {
		return listItem;
	}

	public void setListItem(String listItem) {
		this.listItem = listItem;
	}

	public String getDealCode() {
		return dealCode;
	}

	public void setDealCode(String dealCode) {
		this.dealCode = dealCode;
	}

	public int getOrderDesc() {
		return orderDesc;
	}

	public void setOrderDesc(int orderDesc) {
		this.orderDesc = orderDesc;
	}

	public int getPageIndex() {
		return pageIndex;
	}

	public void setPageIndex(int pageIndex) {
		this.pageIndex = pageIndex;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public String getDealRateState() {
		return dealRateState;
	}

	public void setDealRateState(String dealRateState) {
		this.dealRateState = dealRateState;
	}

	@Override
	public String getApiMethodName() {
		return Constants.deal_sellerSearchDealList_method;
	}

	@Override
	public TreeMap<String, String> getTextParams(ParameterUtils paramUtils) throws Exception {
		paramUtils.addStringParam("sellerUin", sellerUin);
		paramUtils.addStringParam("dealState", dealState);
		paramUtils.addStringParam("itemCode", itemCode);
		paramUtils.addStringParam("dealCode", dealCode);
		paramUtils.addStringParam("orderDesc", orderDesc);
		paramUtils.addStringParam("pageIndex", pageIndex);
		paramUtils.addStringParam("pageSize", pageSize);
		return paramUtils.getParamsMap();
	}

	@Override
	public Class<SellerSearchDealListResponse> getResponseClass() {
		return SellerSearchDealListResponse.class;
	}

}
